moving init in constrictor