restructured io api
Adding ProjectionFactory
minor changes