separate file. rename some methods