use dict for deps
improved dep handling and add package list task