add presenter / refactor