added comment explaining flyweight and code idea