All methods now implemented, including file i/o