Added repeat, will merge with un-pushed soon