endgeiles "composition over inheritance" javascript micro framework