closes #197, closes #193, closes #200