use modern libraries