add key abstract