Refactored linear