refactor supported methods
arrays support