implement changes I mentioned in #21