Various changes, can now deal with any shape face