Added logic/presentation separation