This definetly needs to be moved to a presentation layer