Graphene based plasma-wave devices for terahertz applications