use fire() instead of execute() - get rid of OutputInterface and InputInterface