Changed the objects and data layer interfaces for easier maintaining