Clear up code
	1. Extrace common method into father struct
	2. Clean up unused code