Rewrite shape_data dan child classes to use variadic template