callback based functions for initialization rather than return based