Implement issue #4 and #5