changed application to be more prototype-like than object-like