splitting conv up into separate functions