remove dependency on container selector
separate into basic modules