product implementations, working on spm