Experimental code. Unfinished.