added has and standard function