implemented a draft version