Started on primitive interface for composition