this is complicated enough. but im strong.