Some interesting ideas in here.