refact the constructor

rt