more work towards ->* and such