an attempt at cleaner syntax, and avoids using copy assignment