Finished basic smart constructor.