Major code session for Rest backend, resolves #10, resolves #11 and resolves #12