move the append and shadow functions into builder.dart