100% line and branch coverage! added factory to get rid of icky creation pattern