Use shared contexts with shared examples

Split shared examples into separate files