cleaning up the initializers and adding support for file creation