[major] add tests for file and add capacity to handle more logic, breaking