reworking usecase