issue #22, issue#29, issue#30