lots for cleanup, mergine functionality