custom fields & refactoring