improved interface, now it is based on DialogFragments