added application structure and tests