added controllers for each data type, added repository class for repeating code, unified naming of fields, added basic checks if data exists