added design discussed in issue #8