Edited Version

Edited Version (still need some fixes)