closes #30 and #24