seems working, but still need digging