update regarding to #1 and #4