move it to its own class