add automatic method generator (on going)