add Factory method
prototyp