intermediate stage, doesn't even compile