Added a more feature rich class system for use with polycode