consider extracting it to separate method