method cleanup
fix bugs