Factory pattern final struct

thats fina i hope