enable defining initialize with proper argument checks