support more operations