add implicit construction