start of new reflection api, not finished