#21 - reworked class template structure