porting more stuff over