add ability to pass in data to constructor