breakthrough, will be able to finish this properly