Remove necessity for annotations by creating factory classes