Implemented issues #34, #33, #32