app functionality and tests