added livereload function