implemented methods and properties. completed