modify library interface