see issues: #16, #67, #73