changed constructor signature