getting started on rewriting component system