Author: Basinsky Pavel.