better usage of object callbacks