add load from file functionality