completely revised collision model, refactored a lot of methods, cleaned up things. still have to reimplement jumping and upper collision