requires the commands