Add add function

This builds on the conversation from #202