breaks neighbor method into many methods.