Javascript composition and delegation library