First version with caching.
SQL Queries are in separate class.