add new functional methods