addded basic functionality