Copied Shayan's declaration stuff