added scaling and constructors