added dependency checks and a lock file