Implement remaining functionality