restructure methods