Implement some functions for puzzle
Change some methods from private to protected