refactor the entire component. rename views, add in front end functionality