no init function in abstract class