All necessary logic has been moved to models