Improved some interfaces to add more support