decent file loading procedure :D