Remaining functionality implemented