update

add builder and decorator patterns