frame creation no longer needs its own class