Cleaned up and documented ComponentPool