added 'data holder' class, updated api and refactored, ready for lazy-queries