this is a mess... checkpoint.