separating each entity into own .h and .c to keep functionality together