#32 complete! & #33 bugfix & #52 impl & #50 fix