Added initial implementations, haven't tested yet