now accepts values at init