init and final