start porting stuff over