added synchronous and async methods