change the implementation of free line