closes #88, closes #91, closes #123, closes #132; after meeting