added files for part 3
added extra checks
add url handling