basic line refactored