changed factory functions to better names