work on #50. done with 4). closes #50