adding wrapper library for abstarcation