closes #30 + changes