split to long method