Added IO support, removed facade pattern