most up to date. cleaned up code.
most up to date,cleaned up code.