clean up, and seperate display logic