TODO: line encoder