fix #4, add #3