main framework added