Works almost completely except for corner cases.