fork from FBReader