added hints option and props as well as some code cleanup