different init and callable function