more methods impelemented & tested