updated custom init