roll back to pure controller & fix bugs