rename depends_on to depend_on
address review feedback, add a couple more unit tests