Re-organized how components/systems are defined (fixes #35)