/A very templated approach.