Added comments
Changed btwn squares to throw exception instead of return null on illegalArguments