Broke Leaf into a seperate class, made NewLeaf a module, added tests for Leaf and NewLeaf