Re-designed acording to issue #6