this should always be square