reworked the face organization to not need to search for the end, making it constant complexity. reworked drawing code to work with this and to handle borders correctly in general