splitted methods to reduce complexity