still cleaning up basic file functionality