more stuff ported over