Resolve issue #28
Resolve issue #4 & #17