feature rewrite based on pushtape alpha4