Fixed Add bug, changed to explicit SELF calls
Added different tree structure, better for error handling