Fixed #22, #63, #70 and half of #58

Fixed #63 not #68