updated with TS stuff