Abstract to its own file