try adding presenters and immutable models