Design improvement, see issue #54.