added necessary libraries and APIs