impl issue #2 & issue #5