TODO: add in line and final touches