more clearly define flow and conditions