added the basic functionality