update. Still Under Construction! Comments in the code!