added normalize and partial support