Major functionality implemented