a whole lotta refactoring
style hacks