init with work from anthony