Split method responsibility; optimize method calls