app logic - wip