minor changes
OMG REFACTORED SUCCESSFULLY FINALLY, only minor bugs. uses event delegation for squares