"entity component system" design pattern implemented (and slightly tested)