usecases and testing