Did some refactoring of sin