Better separation between logic and view