split init and setup