extract more stuff to separate file