Re-factored model