Refactored
Multiple constructors now available.