distinguish between effects and commands