first time i got it working, now i have to polish it up, comment every
where