move around components to be more instance-like