* fix most parts
* add register action