-code cleanup

Added interfaces, Enums, abstract classes, moved collision logic around
cleaned up gameloop