reimplementing conv on top of existing map