hopefully fixed and completely working