Reworked constructors