Deisgn pattern implementations