closes #172, #173, #174