move to Moo, added merge_provides