use case states handle their own logic (that's outside of main interface)