could probably re-organize things a bit. but just header comments for now. DONE