most work, still bug to fix