efficient methods