init abstract