Added barriers and some buggy collision detection, also lots of refactoring