Overload for struct constructor