maybe we can call this 'custom' or something and then call some method that subclasses can override?