Added multiple components and systems, and improved implementation.