Moved program logic around, generalized choice making