Changed structure and added interpreter