moved alot of stuff to their own cpp/h files (not finished)