cleaned up type