fixed 4 arg constructor