Add user definition functionality