Refactor how properties are parsed