new algorithm now taking always_build into account
added run_recipe function
implemented list_ddeps function