added bezier implementation