make properties parser more robust, add more unit tests