updates #12 and #4