tests and interface methods implementation