temp PE class, split up later