implemented the basic functionality for a first release