refactored lots of stuff + style