add key calculation methods