remove client code
add caching support and refactor sinatra support modules, turn helper methods into factory class