Refactored with the newest model. WIP...