adds functionality and presentation