made the app logic server agnostic