return dict directly