unstable functions added.. ll correct it later