added application level logic