fix after function
move after function down the chain, add remove utility fn