added associated objects for class variables instead of using static class variables, allows class variables per subclass