This adds the features listed in #1