added factory along with class functions for generating slots