(feat) add basic app functionality

fixes #52, #53, #54, #55, #56, #57, #58, #59