REFACTOR and FIX nearly all required models