add init and destroy methods