Add interfaces for clarify why developer needs to declare methods like these