#25 refactor: change Step to have just abstract Execute()