Refactored Models API so that private methods are prefixed with _ to avoid attribute name collisions