refactored persistors and controllers