Refactored defaults service to be more flexible (#2)