* Lots of additions and polishing