changed execute to use EOH