Added abstract API interfacing