arbitrary bit length support
dry