cleaned up type defs