Refactoring existing property types and implementation of new