refactoring..need to make everything a component and system oriented