refactor obi to depend on the simple object composer