Started adding support for defaulted constructors and moved some stuff around.