Properly separated out templating to common.template, and used pointer instead of constant memory re-allocation