added more interface methods and implemented height()