implement the initial version of crawler