merged code from boky