further implementation, still not working