Refactored model. Stable, but stripe doesn't work yet.