combine custom and defun into init