background, implementation, applications