Added a lot of prototyping