fix horrible constructor