workspace changes to support sync files

@devoncarew 

refactored workspace so that it will be easier to add support for sync fs.