changed interface, which will occur massive bugs, need to fix them