Revised and added version 2