major revamp
minor tweaks