closes #24
closes #25
closes #26
closes #26
closes #26
closes #27
closes #27
closes #24
closes #25