implementation of the first use cases